{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f6e6abf28>"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import matplotlib\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import  matplotlib.pyplot as plt\n",
    "ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))\n",
    "ts = ts.cumsum()\n",
    "ts.plot()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f70816128>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list(\"abcd\"))\n",
    "df = df.cumsum()\n",
    "plt.figure(); df.plot()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'plt' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-1-6b44fc2a5997>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m;\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      2\u001b[0m \u001b[0mdf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0miloc\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkind\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'bar'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m;\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mNameError\u001b[0m: name 'plt' is not defined"
     ]
    }
   ],
   "source": [
    "plt.figure(); \n",
    "df.iloc[10].plot(kind='bar');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sound.effects.echo\n",
    "sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "本期双色球随机号码为:8 18 20 23 24 26 5 恭喜发财!"
     ]
    },
    {
     "data": {
      "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a\nHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy\nMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAGQAfQDASIA\nAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA\nAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3\nODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm\np6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA\nAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx\nBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK\nU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3\nuLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDzKlop\na4z9HsJS0UtIdgoopaRVgAoopaCrBiilFFAwooxS4pDEpaMUYoGFGKXFLSKExRS4oxQMSilxS4oA\nSilopAJRS0YoGJRS4pcUAJiilxRigYlGKdijFADaMU/FGKAG4pMU/FGKAGUU7FGKAG4pMU/FJigQ\n3FGKdijFACYpKXFGKBCUmKdj2ox7UAJijFLj2opgNxSYp+KTFAhuKKWjFAhtGKdikpkiGkxTqTFA\nhKSnUhFMVhKSnUmKCbDaMUuKTFMQlFLSUyWhKKWigVhcUUtFIsKMUoFFIdgpaKWgqwlLilxRSKDF\nFLigCgBKWlopDsJRS4paChKXFLRSGJijFOoxQA3FLilxRQMTFLilxQBQAmKMU7FLilcBuKMU/FGK\n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\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#双色球随机生成\n",
    "import random as rd\n",
    "from IPython.display import display, Image\n",
    "\n",
    "list=[2,17,3,4,5,6]\n",
    "for i in range(6):\n",
    "       f=int(rd.random()*37)\n",
    "       for k in list:\n",
    "           if f==k:\n",
    "               f = int(rd.random() * 37)\n",
    "       list[i] = f\n",
    "\n",
    "list.sort()\n",
    "lq=rd.choice([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16])\n",
    "list.append(lq)\n",
    "print(\"本期双色球随机号码为\", end=':')\n",
    "for l in list:\n",
    "    print(l,end=' ')\n",
    "print(\"恭喜发财\", end='!')\n",
    "display(Image('fq.jpg'))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<html>\r\n",
      "<head>\r\n",
      "\t<script>\r\n",
      "\t\tlocation.replace(location.href.replace(\"https://\",\"http://\"));\r\n",
      "\t</script>\r\n",
      "</head>\r\n",
      "<body>\r\n",
      "\t<noscript><meta http-equiv=\"refresh\" content=\"0;url=http://www.baidu.com/\"></noscript>\r\n",
      "</body>\r\n",
      "</html>\n"
     ]
    }
   ],
   "source": [
    "import requests\n",
    "import subprocess\n",
    "l=requests.get(\"https://www.baidu.com/\")\n",
    "payload={\"wd\":\"python\"}\n",
    "k=requests.get(\"https://www.baidu.com/s\",params=payload)\n",
    "context=k.text\n",
    "print(context)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "ename": "ConnectionError",
     "evalue": "('Connection aborted.', ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None))",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mConnectionResetError\u001b[0m                      Traceback (most recent call last)",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\site-packages\\urllib3\\connectionpool.py\u001b[0m in \u001b[0;36murlopen\u001b[0;34m(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)\u001b[0m\n\u001b[1;32m    600\u001b[0m                                                   \u001b[0mbody\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mbody\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mheaders\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mheaders\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 601\u001b[0;31m                                                   chunked=chunked)\n\u001b[0m\u001b[1;32m    602\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\site-packages\\urllib3\\connectionpool.py\u001b[0m in \u001b[0;36m_make_request\u001b[0;34m(self, conn, method, url, timeout, chunked, **httplib_request_kw)\u001b[0m\n\u001b[1;32m    386\u001b[0m                     \u001b[0;31m# otherwise it looks like a programming error was the cause.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 387\u001b[0;31m                     \u001b[0msix\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mraise_from\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    388\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mSocketTimeout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mBaseSSLError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSocketError\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\site-packages\\urllib3\\packages\\six.py\u001b[0m in \u001b[0;36mraise_from\u001b[0;34m(value, from_value)\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\site-packages\\urllib3\\connectionpool.py\u001b[0m in \u001b[0;36m_make_request\u001b[0;34m(self, conn, method, url, timeout, chunked, **httplib_request_kw)\u001b[0m\n\u001b[1;32m    382\u001b[0m                 \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 383\u001b[0;31m                     \u001b[0mhttplib_response\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mconn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetresponse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    384\u001b[0m                 \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\http\\client.py\u001b[0m in \u001b[0;36mgetresponse\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m   1330\u001b[0m             \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1331\u001b[0;31m                 \u001b[0mresponse\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbegin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1332\u001b[0m             \u001b[0;32mexcept\u001b[0m \u001b[0mConnectionError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\http\\client.py\u001b[0m in \u001b[0;36mbegin\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    296\u001b[0m         \u001b[0;32mwhile\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 297\u001b[0;31m             \u001b[0mversion\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstatus\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreason\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_read_status\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    298\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mstatus\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mCONTINUE\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\http\\client.py\u001b[0m in \u001b[0;36m_read_status\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    257\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m_read_status\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 258\u001b[0;31m         \u001b[0mline\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreadline\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_MAXLINE\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"iso-8859-1\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    259\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0m_MAXLINE\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\socket.py\u001b[0m in \u001b[0;36mreadinto\u001b[0;34m(self, b)\u001b[0m\n\u001b[1;32m    585\u001b[0m             \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 586\u001b[0;31m                 \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sock\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecv_into\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    587\u001b[0m             \u001b[0;32mexcept\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mConnectionResetError\u001b[0m: [WinError 10054] 远程主机强迫关闭了一个现有的连接。",
      "\nDuring handling of the above exception, another exception occurred:\n",
      "\u001b[0;31mProtocolError\u001b[0m                             Traceback (most recent call last)",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\site-packages\\requests\\adapters.py\u001b[0m in \u001b[0;36msend\u001b[0;34m(self, request, stream, timeout, verify, cert, proxies)\u001b[0m\n\u001b[1;32m    439\u001b[0m                     \u001b[0mretries\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmax_retries\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 440\u001b[0;31m                     \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    441\u001b[0m                 )\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\site-packages\\urllib3\\connectionpool.py\u001b[0m in \u001b[0;36murlopen\u001b[0;34m(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)\u001b[0m\n\u001b[1;32m    638\u001b[0m             retries = retries.increment(method, url, error=e, _pool=self,\n\u001b[0;32m--> 639\u001b[0;31m                                         _stacktrace=sys.exc_info()[2])\n\u001b[0m\u001b[1;32m    640\u001b[0m             \u001b[0mretries\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msleep\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\site-packages\\urllib3\\util\\retry.py\u001b[0m in \u001b[0;36mincrement\u001b[0;34m(self, method, url, response, error, _pool, _stacktrace)\u001b[0m\n\u001b[1;32m    356\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mread\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mFalse\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_is_method_retryable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 357\u001b[0;31m                 \u001b[0;32mraise\u001b[0m \u001b[0msix\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreraise\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merror\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merror\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_stacktrace\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    358\u001b[0m             \u001b[0;32melif\u001b[0m \u001b[0mread\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\site-packages\\urllib3\\packages\\six.py\u001b[0m in \u001b[0;36mreraise\u001b[0;34m(tp, value, tb)\u001b[0m\n\u001b[1;32m    684\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__traceback__\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mtb\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 685\u001b[0;31m             \u001b[0;32mraise\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwith_traceback\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    686\u001b[0m         \u001b[0;32mraise\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\site-packages\\urllib3\\connectionpool.py\u001b[0m in \u001b[0;36murlopen\u001b[0;34m(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)\u001b[0m\n\u001b[1;32m    600\u001b[0m                                                   \u001b[0mbody\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mbody\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mheaders\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mheaders\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 601\u001b[0;31m                                                   chunked=chunked)\n\u001b[0m\u001b[1;32m    602\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\site-packages\\urllib3\\connectionpool.py\u001b[0m in \u001b[0;36m_make_request\u001b[0;34m(self, conn, method, url, timeout, chunked, **httplib_request_kw)\u001b[0m\n\u001b[1;32m    386\u001b[0m                     \u001b[0;31m# otherwise it looks like a programming error was the cause.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 387\u001b[0;31m                     \u001b[0msix\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mraise_from\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    388\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mSocketTimeout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mBaseSSLError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSocketError\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\site-packages\\urllib3\\packages\\six.py\u001b[0m in \u001b[0;36mraise_from\u001b[0;34m(value, from_value)\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\site-packages\\urllib3\\connectionpool.py\u001b[0m in \u001b[0;36m_make_request\u001b[0;34m(self, conn, method, url, timeout, chunked, **httplib_request_kw)\u001b[0m\n\u001b[1;32m    382\u001b[0m                 \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 383\u001b[0;31m                     \u001b[0mhttplib_response\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mconn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetresponse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    384\u001b[0m                 \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\http\\client.py\u001b[0m in \u001b[0;36mgetresponse\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m   1330\u001b[0m             \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1331\u001b[0;31m                 \u001b[0mresponse\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbegin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1332\u001b[0m             \u001b[0;32mexcept\u001b[0m \u001b[0mConnectionError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\http\\client.py\u001b[0m in \u001b[0;36mbegin\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    296\u001b[0m         \u001b[0;32mwhile\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 297\u001b[0;31m             \u001b[0mversion\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstatus\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreason\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_read_status\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    298\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mstatus\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mCONTINUE\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\http\\client.py\u001b[0m in \u001b[0;36m_read_status\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    257\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m_read_status\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 258\u001b[0;31m         \u001b[0mline\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreadline\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_MAXLINE\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"iso-8859-1\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    259\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0m_MAXLINE\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\socket.py\u001b[0m in \u001b[0;36mreadinto\u001b[0;34m(self, b)\u001b[0m\n\u001b[1;32m    585\u001b[0m             \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 586\u001b[0;31m                 \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sock\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecv_into\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    587\u001b[0m             \u001b[0;32mexcept\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mProtocolError\u001b[0m: ('Connection aborted.', ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None))",
      "\nDuring handling of the above exception, another exception occurred:\n",
      "\u001b[0;31mConnectionError\u001b[0m                           Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-15-6510a4b34ba6>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      2\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mrequests\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0mcontext\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m'comment'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m'测试POST'\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mk\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrequests\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpost\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'http://www.itwhy.org/wp-comments-post.php'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcontext\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\site-packages\\requests\\api.py\u001b[0m in \u001b[0;36mpost\u001b[0;34m(url, data, json, **kwargs)\u001b[0m\n\u001b[1;32m    110\u001b[0m     \"\"\"\n\u001b[1;32m    111\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 112\u001b[0;31m     \u001b[0;32mreturn\u001b[0m \u001b[0mrequest\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'post'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjson\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mjson\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    113\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    114\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\site-packages\\requests\\api.py\u001b[0m in \u001b[0;36mrequest\u001b[0;34m(method, url, **kwargs)\u001b[0m\n\u001b[1;32m     56\u001b[0m     \u001b[0;31m# cases, and look like a memory leak in others.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     57\u001b[0m     \u001b[0;32mwith\u001b[0m \u001b[0msessions\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSession\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0msession\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 58\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0msession\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0murl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     59\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     60\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\site-packages\\requests\\sessions.py\u001b[0m in \u001b[0;36mrequest\u001b[0;34m(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)\u001b[0m\n\u001b[1;32m    506\u001b[0m         }\n\u001b[1;32m    507\u001b[0m         \u001b[0msend_kwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msettings\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 508\u001b[0;31m         \u001b[0mresp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0msend_kwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    509\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    510\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mresp\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\site-packages\\requests\\sessions.py\u001b[0m in \u001b[0;36msend\u001b[0;34m(self, request, **kwargs)\u001b[0m\n\u001b[1;32m    616\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    617\u001b[0m         \u001b[0;31m# Send the request\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 618\u001b[0;31m         \u001b[0mr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0madapter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    619\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    620\u001b[0m         \u001b[0;31m# Total elapsed time of the request (approximately)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mD:\\Program Files\\Python\\Python36\\lib\\site-packages\\requests\\adapters.py\u001b[0m in \u001b[0;36msend\u001b[0;34m(self, request, stream, timeout, verify, cert, proxies)\u001b[0m\n\u001b[1;32m    488\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    489\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mProtocolError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msocket\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0merror\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 490\u001b[0;31m             \u001b[0;32mraise\u001b[0m \u001b[0mConnectionError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrequest\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    491\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    492\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mMaxRetryError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mConnectionError\u001b[0m: ('Connection aborted.', ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None))"
     ]
    }
   ],
   "source": [
    "#post\n",
    "import requests \n",
    "context={'comment':'测试POST'}\n",
    "k=requests.post('http://www.itwhy.org/wp-comments-post.php',data=context)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'lb'"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import random as rd\n",
    "rd.choice(['xjg','hzs','lzb','lzc','lb'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "65"
     ]
    },
    {
     "data": {
      "text/plain": [
       "51"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import zlib\n",
    "s=b'jfadslfjkldsajfkldsajfklsadjfkl;adsjdfkla;sjfkldsa;jflksda;jfldsa'\n",
    "print(len(s),end='')\n",
    "len(zlib.compress(s))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import socket\n",
    "\n",
    "HOST = ''                 # Symbolic name meaning all available interfaces\n",
    "PORT = 50007              # Arbitrary non-privileged port\n",
    "s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n",
    "s.bind((HOST, PORT))\n",
    "s.listen(1)\n",
    "conn, addr = s.accept()\n",
    "print('Connected by', addr)\n",
    "while True:\n",
    "    data = conn.recv(1024)\n",
    "    if not data: break\n",
    "    conn.send(data)\n",
    "conn.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.062262972287499"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from timeit import Timer \n",
    "Timer('t=a; a=b; b=t', 'a=1; b=2').timeit()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "insert sucess!\n",
      "select sucess!\n",
      "fname=Mac,lname=Mohan,age=20,sex=M,income=2000\n",
      "delete sucess\n"
     ]
    }
   ],
   "source": [
    "import pymysql\n",
    "\n",
    "mysqldb = pymysql.connect('localhost', 'test', 'test')\n",
    "cursor = mysqldb.cursor()\n",
    "deldb = 'drop database python'\n",
    "createdb = 'create database python'\n",
    "try:\n",
    "    cursor.execute(deldb)\n",
    "    cursor.execute(createdb)\n",
    "    cursor.execute('use python')\n",
    "except:\n",
    "    print('invoke failed')\n",
    "\n",
    "createtable = \"\"\"CREATE TABLE EMPLOYEE (\n",
    "         FIRST_NAME  CHAR(20) NOT NULL,\n",
    "         LAST_NAME  CHAR(20),\n",
    "         AGE INT,  \n",
    "         SEX CHAR(1),\n",
    "         INCOME FLOAT )\"\"\"\n",
    "cursor.execute(createtable)\n",
    "insertsql = '''INSERT INTO EMPLOYEE(FIRST_NAME,\n",
    "         LAST_NAME, AGE, SEX, INCOME)\n",
    "         VALUES ('Mac', 'Mohan', 20, 'M', 2000)'''\n",
    "try:\n",
    "    cursor.execute(insertsql)\n",
    "    mysqldb.commit()\n",
    "    print('insert sucess!')\n",
    "except:\n",
    "    mysqldb.rollback()\n",
    "    print(\"insert fail\")\n",
    "\n",
    "selectsql = '''SELECT * FROM EMPLOYEE \\\n",
    "       WHERE FIRST_NAME ='Mac' '''\n",
    "try:\n",
    "    cursor.execute(selectsql)\n",
    "    results = cursor.fetchall()\n",
    "    for row in results:\n",
    "        fname = row[0]\n",
    "        lname = row[1]\n",
    "        age = row[2]\n",
    "        sex = row[3]\n",
    "        income = row[4]\n",
    "        print(\"select sucess!\")\n",
    "        print(\"fname=%s,lname=%s,age=%d,sex=%s,income=%d\" % \\\n",
    "              (fname, lname, age, sex, income))\n",
    "\n",
    "except:\n",
    "    print(\"Error: unable to fetch data\")\n",
    "\n",
    "delsql = '''delete from EMPLOYEE where FIRST_NAME='Mac' '''\n",
    "try:\n",
    "    cursor.execute(delsql)\n",
    "    mysqldb.commit()\n",
    "    print('delete sucess')\n",
    "except:\n",
    "    mysqldb.rollback()\n",
    "# cursor.execute('show databases')\n",
    "mysqldb.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
